# config.py
from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import Field


class Settings(BaseSettings):
    """配置类：从.env文件读取参数，优先级：环境变量 > .env文件 > 默认值"""

    # 1. 飞书应用敏感配置（必须在.env中填写真实值）
    feishu_app_id: str = Field(..., env="FEISHU_APP_ID")  # ...表示必填，无默认值
    feishu_app_secret: str = Field(..., env="FEISHU_APP_SECRET")

    # 2. 改稿API配置（可在.env中修改，默认用原代码的URL）
    revision_api_url: str = Field(
        "http://localhost:8000/run-process",  # 默认值（本地开发用）
        env="REVISION_API_URL"  # 环境变量名（生产环境可通过环境变量覆盖）
    )

    # 3. 服务运行配置（可选，如需调整端口可添8851
    api_host: str = Field("0.0.0.0", env="API_HOST")
    api_port: int = Field(8002, env="API_PORT")

    # 配置.env文件路径（项目根目录下的.env文件）
    model_config = SettingsConfigDict(
        env_file=".env",  # .env文件路径
        env_file_encoding="utf-8",  # 编码格式
        case_sensitive=False  # 不区分环境变量大小写（如FEISHU_APP_ID和feishu_app_id都可）
    )


# 实例化配置（全局单例，其他文件导入此对象使用）
settings = Settings()
